using System;
using System.Collections.Generic;
using System.Text;
using ControladorDifuso.Conjunto;

namespace ControladorDifuso.Implicaciones
{
    public class Relacion : IPertenencia
    {
        private Normas.Norma normaRelacion;
        private IPertenencia a, b;

        public IPertenencia A
        {
            get
            {
                return this.a;
            }
            set
            {
                this.a = value;
            }
        }

        public IPertenencia B
        {
            get
            {
                return this.b;
            }
            set
            {
                this.b = value;
            }
        }

        public Normas.Norma Norma
        {
            get
            {
                return this.normaRelacion;
            }
            set
            {
                this.normaRelacion = value;
            }
        }

        public decimal Pertenencia()
        {
            if (a == null || b==null )
                return decimal.Zero;
            return this.normaRelacion.calcular(this.a.Pertenencia(), this.b.Pertenencia());
        }

        public Relacion(IPertenencia a, IPertenencia b)
        {
            this.A = a;
            this.B = b;
        }

        public override string ToString()
        {
            return "(" + a.ToString() + this.normaRelacion + b.ToString()+")";
        }        
    }
}
